package com.mutual.reins.interf.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 批单数据主表

 * </p>
 *
 * @author CodeGenerate
 * @since 2021-03-31
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("REINSENDORUNIT")
public class ReinsEndorUnit implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 单证类型
A：批单申请 E：批单

     */
    @TableField("CERTITYPE")
    private String certiType;

    /**
     * 批单号	EndorNo	VARCHAR2(25),			批单号

     */
    @TableId("ENDORNO")
    private String endorNo;

    /**
     * 投保单号

     */
    @TableField("PROPOSALNO")
    private String proposalNo;

    /**
     * 保单号

     */
    @TableField("POLICYNO")
    private String policyNo;

    /**
     * 1:老双核 2：车险双核 3：人身险双核
     */
    @TableField("TYPE")
    private String type;

    /**
     * 批改次数
     */
    @TableField("ENDORSETIMES")
    private Integer endorseTimes = 0;

    /**
     * 险类代码
     */
    @TableField("CLASSCODE")
    private String classCode;

    /**
     * 险类中文名称
     */
    @TableField("CLASSNAME")
    private String className;

    /**
     * 险种代码
     */
    @TableField("RISKCODE")
    private String riskCode;

    /**
     * 险种中文名称

     */
    @TableField("RISKCNAME")
    private String riskCname;

    /**
     * 业务归属公司代码
     */
    @TableField("COMCODE")
    private String comCode;

    /**
     * 业务来源
     */
    @TableField("BUSINESSNATURE")
    private String businessNature;

    /**
     * 占用性质
     */
    @TableField("POSSESSNATURE")
    private String possessNature;

    /**
     * 行业代码
     */
    @TableField("BUSINESSSOURCE")
    private String businessSource;

    /**
     * 被保险总数量/人数/户数
     */
    @TableField("SUMQUANTITY")
    private Integer sumQuantity = 0 ;

    /**
     * 装载运输工具
     */
    @TableField("CONVEYANCE")
    private String conveyance;

    /**
     * 船舶代码

     */
    @TableField("SHIPCODE")
    private String shipCode;

    /**
     * 船名(中文)
     */
    @TableField("SHIPCNAME")
    private String shipCname;

    /**
     * 船名(英文
     */
    @TableField("SHIPENAME")
    private String shipEname;

    /**
     * 被保险人代码

     */
    @TableField("INSUREDCODE")
    private String insuredCode;

    /**
     * 被保险人名

     */
    @TableField("INSUREDNAME")
    private String insuredName;

    /**
     * 被保险人地址	InsuredAddress	String			被保险人地址

     */
    @TableField("INSUREDADDRESS")
    private String insuredAddress;

    /**
     * 约定分期交费次数
     */
    @TableField("PAYTIMES")
    private Long payTimes = 0L;

    /**
     * 批单填报日期（制单日期）
     */
    @TableField("ENDORDATE")
    private LocalDate endorDate;

    /**
     * 批单生效日期
     */
    @TableField("VALIDDATE")
    private LocalDate validDate;

    /**
     * 批改类型代码
19:注销保单
21:全单退保
62:契撤"

     */
    @TableField("ENDORTYPE")
    private String endorType;

    /**
     * 批改内容

     */
    @TableField("ENDORDESC")
    private String endorDesc;

    /**
     * 起保日期（启运日期）
     */
    @TableField("STARTDATE")
    private LocalDate startDate;

    /**
     * 终保日期

     */
    @TableField("ENDDATE")
    private LocalDate endDate;

    /**
     * 币别代码
     */
    @TableField("CURRENCY")
    private String currency;

    /**
     * 批改后最新总保额/赔偿限额/责任限额
     */
    @TableField("AMOUNT")
    private BigDecimal amount = new BigDecimal("0.00");

    /**
     * 批改后最新毛保费
     */
    @TableField("PREMIUM")
    private BigDecimal premium = new BigDecimal("0.00");

    /**
     * 直接手续费比例
     */
    @TableField("DISRATE")
    private BigDecimal disRate = new BigDecimal("0.000000");

    /**
     * 最新直接手续费
     */
    @TableField("DISFEE")
    private BigDecimal disFee = new BigDecimal("0.00");

    /**
     * 净保费
     */
    @TableField("PREMIUMNET")
    private BigDecimal premiumNet = new BigDecimal("0.00");

    /**
     * 保额变化量
     */
    @TableField("CHGAMOUNT")
    private BigDecimal chgAmount = new BigDecimal("0.00");

    /**
     * 毛保费变化量
     */
    @TableField("CHGPREMIUM")
    private BigDecimal chgPremium = new BigDecimal("0.00");

    /**
     * 手续费变化量
     */
    @TableField("CHGDISFEE")
    private BigDecimal chgDisFee = new BigDecimal("0.00");

    /**
     * 净保费变化量
     */
    @TableField("CHGPREMIUMNET")
    private BigDecimal chgPremiumNet = new BigDecimal("0.00");

    @TableField("COMNAME")
    private String comName;

    /**
     * 是否团单的标记
0：个人
1：团单

     */
    @TableField("GROUPFLAG")
    private String groupFlag;

    /**
     * 联共保标志
0独家承保/1主共/2从共/3主联

     */
    @TableField("COINSFLAG")
    private String coinsFlag;

    /**
     * 股东业务标志
0非股东业务，1股东业务
为空则默认为0

     */
    @TableField("SHAREHOLDERFLAG")
    private String shareholderFlag;

    /**
     * 业务类型
0自营业务，1分入业务

     */
    @TableField("BUSINESSFLAG")
    private String businessFlag;

    /**
     * 制单人代码
     */
    @TableField("CREATERCODE")
    private String createrCode;

    /**
     * 制单部门代码

     */
    @TableField("MAKECOMCODE")
    private String makeComCode;

    /**
     * 制单日期

     */
    @TableField("CREATEDATE")
    private LocalDate createDate;

    /**
     * 最终核批人代码
     */
    @TableField("UNDERWRITECODE")
    private String underWriteCode;

    /**
     * 最终核批人名称
     */
    @TableField("UNDERWRITENAME")
    private String underWritEname;

    /**
     * 核批完成日期
     */
    @TableField("UNDERWRITEENDDATE")
    private LocalDate underWriteEndDate;

    /**
     * 司法管辖
     */
    @TableField("JUDICALSCOPE")
    private String judIcalScope;

    @TableField("CARNATURECODE")
    private String carNatureCode;

    /**
     * 批改前不免税保费
     */
    @TableField("PREMOFVAT")
    private BigDecimal premOfVat = new BigDecimal("0.00");

    /**
     * 批改前增值税
     */
    @TableField("VAT")
    private BigDecimal vat = new BigDecimal("0.00");

    /**
     * 税率
     */
    @TableField("VATRATE")
    private BigDecimal vatRate = new BigDecimal("0.000000");

    /**
     * 批改前免税保费
     */
    @TableField("PREMFREEVAT")
    private BigDecimal premFreeVat = new BigDecimal("0.00");

    /**
     * 批改前免税金额
     */
    @TableField("FREEVAT")
    private BigDecimal freeVat = new BigDecimal("0.00");

    /**
     * 不免税保费变化量
     */
    @TableField("CHGPREMOFVAT")
    private BigDecimal chgPremOfVat = new BigDecimal("0.00");

    /**
     * 增值税变化量
     */
    @TableField("CHGVAT")
    private BigDecimal chgVat = new BigDecimal("0.00");

    /**
     * 免税保费变化量
     */
    @TableField("CHGPREMFREEVAT")
    private BigDecimal chgPremFreeVat = new BigDecimal("0.00");

    /**
     * 免税金额变化量
     */
    @TableField("CHGFREEVAT")
    private BigDecimal chgFreeVat = new BigDecimal("0.00");

    /**
     * 考核机构
     */
    @TableField("EXAMINECOMCODE")
    private String examineComCode;

    /**
     * 考核人员
     */
    @TableField("EXAMINEUSERCODE")
    private String examineUserCode;

    /**
     * 投保人编码
     */
    @TableField("APPLICODE")
    private String appliCode;

    /**
     * 投保人名称
     */
    @TableField("APPLINAME")
    private String appliName;

    /**
     * 工程地点
     */
    @TableField("ENGINEERINGADDRESS")
    private String engineeringAddress;

    /**
     * 工程描述
     */
    @TableField("ENGINEERINGDESCRIPTION")
    private String engineeringDescription;

    /**
     * 项目名称
     */
    @TableField("ENGINEERINGNAME")
    private String engineeringName;

    /**
     * 工程类别一级
     */
    @TableField("ENGINEERINGTYPE1")
    private String engineeringType1;

    /**
     * 工程类别二级
     */
    @TableField("ENGINEERINGTYPE2")
    private String engineeringType2;

    /**
     * 被保险人行业类别
     */
    @TableField("INDUSTRYTYPE")
    private String industryType;

    /**
     * 省
     */
    @TableField("ITEMPROVINCE")
    private String itemProvince;

    /**
     * 市
     */
    @TableField("ITEMCITY")
    private String itemCity;

    /**
     * 区县
     */
    @TableField("ITEMDISTRICT")
    private String itemDistrict;

    /**
     * 被保险人行业类别
     */
    @TableField("SITUATION")
    private String situation;

    @TableField("GROUPNO")
    private String groupNo;


}
